/*
 * Created on 07-feb-2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.juanfrivaldes.cio2005.gestion;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * @author root
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class GestionFinalesAction extends GestionAction {

	private static Log log = LogFactory.getLog(GestionFinalesAction.class);

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.juanfrivaldes.cio2005.web.BaseAction#protectedExecute(org.apache.struts.action.ActionMapping,
	 *      org.apache.struts.action.ActionForm,
	 *      javax.servlet.http.HttpServletRequest,
	 *      javax.servlet.http.HttpServletResponse)
	 */
	protected ActionForward protectedExecute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		List ponencias;
		GestionPonenciasFiltradasForm ponenciasForm = (GestionPonenciasFiltradasForm) form;
		request.getSession(false).setAttribute("usuario",null);
		
		log.trace(request.getParameter("action"));
		
		if(request.getParameter("action")!=null && request.getParameter("action").equals("Ver todas las ponencias")){
			request.getSession(false).setAttribute("categoria",null);
			//log.trace("Se pide ver todas las ponencias");
		}

		//if (request.getParameter("usuario") != null) {
			//request.getSession(false).setAttribute("usuario",request.getParameter("usuario"));
			//ponencias = this.getCio2005().getPonenciasWithUsuario(
			//		request.getParameter("usuario"));
		//} else {

			if ((ponenciasForm == null || ponenciasForm.getCategoria() == null) && request.getSession(false).getAttribute("categoria")==null) {
				ponencias = this.getCio2005().getFinales();
				log.trace("Se piden todas las ponencias");
			} else {
				String categoria;
				if(ponenciasForm!=null && ponenciasForm.getCategoria()!=null){
					categoria=ponenciasForm.getCategoria();
					request.getSession(false).setAttribute("categoria",categoria);
				}
				else{
					categoria=(String)request.getSession(false).getAttribute("categoria");
				}
				log.trace("Se piden ponencias para categoria "
						+ categoria);
				ponencias = this.getCio2005().getFinalesByCategoria(categoria);
				
			}
		//}
		
		
			
		
		if (ponencias != null) {
			log.trace("Recuperadas " + ponencias.size() + " ponencias");
			request.getSession(false).setAttribute("nFinales", new Integer(ponencias.size()));
			request.getSession(false).setAttribute("finales", ponencias);
			
		} else {
			request.setAttribute("nFinales", new Integer(0));
		}

		return mapping.findForward("success");
	}

}
